General MIDI Sound Set is situated by default in the Environment/Extensions and can be used with a wide variaty of synthesizers. You can make your own synth setups with def-sound-set. The following example shows how the General MIDI Sound Set is defined. The sounds are represented in named groups followed by the instrument names and corresponding MIDI program change numbers. Refer to your synthesizer manual to set up a customized sound set.
(def-sound-set gm-sound-set
group piano
acoustic-grand-piano 1
bright-acoustic-piano 2
electric-grand-piano 3
honky-tonk-piano 4
electric-piano-1 5
;....
group sound-effects
guitar-fret-noise 121
breath-noise 122
seashore 123
bird-tweet 124
telephone-ring 125
helicopter 126
applause 127
gunshot 128
)
Installing
After you have evaluated the def-sound-set definition, the sound set set-name appears on the MIDI menu. Include the def-sound-set definitions in a file that you store in Environment/Extensions folder. This file is first loaded during boot up.
Using Sound-Sets
When the instrument name is used within def-program and the sound set title is supplied the program change value is automatically used when compiling the instrument.
(def-program gm-sound-set
default acoustic-grand-piano
piano electric-piano-1 ; send at the beginning of a track
sax ((alto-sax) ; two first zones have its own values
(soprano-sax) ; third zone has programs for each
(alto-sax tenor-sax)) ; individual notes
)
Using Banks
Some synths have several sound banks. Before program change will take place also the sound bank must be selected. There are two ways to achieve this. Check you synth manual.
Multiple Program Changes
If your synth responds to successive program changes so that first one selectes the bank and the next selects the program define the sounds with (multi <bank> <program>).
(def-sound-set K2000
group Klavier1
dual-elec-piano (multi 100 52)
tine-elec-piano (multi 100 12)
digital-epiano (multi 100 92)
stereo-grand (multi 100 2)
bright-piano (multi 100 42)
piano&slo-strings (multi 100 22)
piano/slow-strings (multi 101 2)
perc-organ (multi 100 82)
gospel-organ (multi 100 62)
ballad-organ (multi 101 22)
)
If your synth responds to controller 32 to select bank you should use (bank <bank> <program>).
(def-sound-set mu80-sounds
group Piano
GrandPno (bank 0 1)
BritePno (bank 0 2)
E-Grand (bank 0 3)
HnkyTonk (bank 0 4)
E-Piano1 (bank 0 5)
E-Piano2 (bank 0 6)
Harpsi (bank 0 7)
Clavi (bank 0 8)
Celesta (bank 0 9)
)
Using MSB/LSB Program
Some synths respond both controller 0 and 32 to select the bank. This case use 3 parameters:
(def-sound-set 2080-sounds
group Ethnic
Jamisen (bank 81 2 104)
)
Accessing sound-sets in def-section
Here is an easy way to access sound-sets within def-section. def-sound-set creates a k2000 macro that lets to return the program number hooked to it. If you want to change programs note by note you can use more than one drum names within the macro. If each zone must have it's own program values use (append .. ..) to build a suitable formed list.